/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.proyecto.managed;

import java.io.Serializable;
import java.util.List;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import sv.com.intesal.clases.LimpiarManaged;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.proyecto.bean.Cliente;
import sv.com.intesal.proyecto.bean.DevolucionProyecto;
import sv.com.intesal.proyecto.bean.Proyecto;
import sv.com.intesal.proyecto.bean.ProyectoResumenGeneral;
import sv.com.intesal.proyecto.bean.SalidaProyecto;
import sv.com.intesal.proyecto.bean.UtilizacionProyecto;
import sv.com.intesal.proyecto.controlador.DevolucionProyectoControlador;
import sv.com.intesal.proyecto.controlador.ProyectoControlador;
import sv.com.intesal.proyecto.controlador.SalidaProyectoControlador;
import sv.com.intesal.proyecto.controlador.UtilizacionProyectoControlador;
import sv.com.intesal.seguridad.managed.SessionManaged;

/**
 *
 * @author ejerez
 */
@ManagedBean(name = "consultaMaestraProyectoManaged")
@ViewScoped
public class ConsultaMaestraProyectoManaged implements Serializable {


    /* STEP 1*/
    private SessionManaged sm;
    private Mensaje m;
    private Cliente selectedCliente;
    private Proyecto selectedEncaProyecto;
    private Proyecto selectedDetaProyecto;
    private List<Proyecto> proyectos;
    /*FLAGS*/
    private Boolean flagStep_1; //pantalla inicial
    private Boolean flagStep_2; // historial

    /* step 3*/
    private Boolean flagStep_3_devolucion;
    private Boolean flagStep_3_salida;
    private Boolean flagStep_3_utilizacion;

    /* STEP 2*/
    private List<DevolucionProyecto> encaDevolucionProyectos;
    private List<SalidaProyecto> encaSalidaProyectos;
    private List<UtilizacionProyecto> encaUtilizacionProyectos;

    /*STEP 3*/
    private List<DevolucionProyecto> detaDevolucionProyectos;
    private List<SalidaProyecto> detaSalidaProyectos;
    private List<UtilizacionProyecto> detaUtilizacionProyectos;

    /* STEP 2 and 3*/
    private DevolucionProyecto selectedDetaDevolucionProyecto;
    private SalidaProyecto selectedDetaSalidaProyecto;
    private UtilizacionProyecto selectedDetaUtilizacionProyecto;

    /*Resumen Total de Proyecto*/
    private List<ProyectoResumenGeneral> proyectoResumenGenerales;

    public ConsultaMaestraProyectoManaged() {
        this.flagStep_1 = true;
        this.flagStep_2 = false;
        this.flagStep_3_devolucion = false;
        this.flagStep_3_salida = false;
        this.flagStep_3_utilizacion = false;
        m = new Mensaje();
        sm = new SessionManaged();

        this.selectedCliente = new Cliente();
        this.selectedDetaProyecto = new Proyecto();
        this.selectedEncaProyecto = new Proyecto();
        this.selectedDetaSalidaProyecto = new SalidaProyecto();
        this.selectedDetaDevolucionProyecto = new DevolucionProyecto();
        this.selectedDetaUtilizacionProyecto = new UtilizacionProyecto();
    }

    public void buscarGrid() {
        try {
            if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.buscar) == true) {

                this.selectedEncaProyecto.setId_c(this.selectedCliente.getCodigo_c());
                this.selectedEncaProyecto.setCodigo_cl(this.selectedCliente.getCodigo_c());
                ProyectoControlador pc = new ProyectoControlador();
                this.proyectos = pc.getProyectos_Pendientes(this.selectedEncaProyecto);

            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void getCliente_Quick(Cliente cl) {
        try {
            this.selectedCliente = cl;
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void ocultarFlag_1() {

        try {
            if (this.selectedDetaProyecto == null) {
                m.messageError("DEBE ELEGIR UN REGISTRO PARA CONTINUAR");
            } else if (this.selectedDetaProyecto != null) {
                this.ocultarFlags_Step2();

                SalidaProyectoControlador sp = new SalidaProyectoControlador();
                DevolucionProyectoControlador dp = new DevolucionProyectoControlador();
                UtilizacionProyectoControlador up = new UtilizacionProyectoControlador();

                this.encaUtilizacionProyectos = up.getUtilizacionProyecto_x_Proyecto(this.selectedDetaProyecto.getId_p());
                this.encaDevolucionProyectos = dp.getDevolucionProyecto_x_Proyecto(this.selectedDetaProyecto.getId_p());
                this.encaSalidaProyectos = sp.getSalidaProyecto_x_Proyecto(this.selectedDetaProyecto.getId_p());

                ProyectoControlador pc = new ProyectoControlador();
                this.proyectoResumenGenerales = pc.getResumenTotal(this.selectedDetaProyecto);
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void ocultarFlags_Inicio() {
        try {
            this.flagStep_1 = true;
            this.flagStep_2 = false;
            this.flagStep_3_devolucion = false;
            this.flagStep_3_salida = false;
            this.flagStep_3_utilizacion = false;

            this.selectedDetaDevolucionProyecto = null;
            this.selectedDetaSalidaProyecto = null;
            this.selectedDetaUtilizacionProyecto = null;

            this.detaDevolucionProyectos = null;
            this.detaUtilizacionProyectos = null;
            this.detaSalidaProyectos = null;

        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void ocultarFlags_Step2() {
        try {
            this.flagStep_1 = false;
            this.flagStep_2 = true;
            this.flagStep_3_devolucion = false;
            this.flagStep_3_salida = false;
            this.flagStep_3_utilizacion = false;

            this.selectedDetaDevolucionProyecto = null;
            this.selectedDetaSalidaProyecto = null;
            this.selectedDetaUtilizacionProyecto = null;
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void ocultarFlag_DP_SP_UP() {

        try {

            if (this.selectedDetaSalidaProyecto != null) {

                /*SALIDA PROYECTO*/
                this.flagStep_1 = false;
                this.flagStep_2 = false;
                this.flagStep_3_salida = true;
                this.selectedDetaUtilizacionProyecto = null;
                this.selectedDetaDevolucionProyecto = null;

                SalidaProyectoControlador sp = new SalidaProyectoControlador();
                this.detaSalidaProyectos = sp.getDetaSalidaProyecto(this.selectedDetaSalidaProyecto.getId_sp());

            } else if (this.selectedDetaUtilizacionProyecto != null) {

                /*UTILIZACION PROYECTO*/
                this.flagStep_1 = false;
                this.flagStep_2 = false;
                this.flagStep_3_utilizacion = true;
                this.selectedDetaSalidaProyecto = null;
                this.selectedDetaDevolucionProyecto = null;

                UtilizacionProyectoControlador up = new UtilizacionProyectoControlador();
                this.detaUtilizacionProyectos = up.getDetaUtilizacionProyecto(this.selectedDetaUtilizacionProyecto.getId_up());

            } else if (this.selectedDetaDevolucionProyecto != null) {

                /*DEVOLUCION PROYECTO*/
                this.flagStep_1 = false;
                this.flagStep_2 = false;
                this.flagStep_3_devolucion = true;
                this.selectedDetaUtilizacionProyecto = null;
                this.selectedDetaSalidaProyecto = null;

                DevolucionProyectoControlador dp = new DevolucionProyectoControlador();
                this.detaDevolucionProyectos = dp.getDetaDevolucionProyecto(this.selectedDetaDevolucionProyecto.getId_dp());
            } else {
                m.messageError("DEBE ELEGIR UN REGISTRO PARA CONTINUAR");
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void modificarRegistro() {
        try {
            if (this.validar_mofiicar() == true) {
                if (this.selectedDetaSalidaProyecto != null) {

                    /*SALIDA PROYECTO*/
                    if (sm.validar_rol_usuario("wfrmSalidaProyecto", sm.modificar) == true) {
                        SalidaProyectoControlador sp = new SalidaProyectoControlador();
                        sp.modificarSalidaProyecto(this.selectedDetaSalidaProyecto);
                    }
                } else if (this.selectedDetaUtilizacionProyecto != null) {

                    /*UTILIZACION PROYECTO*/
                    if (sm.validar_rol_usuario("wfrmUtilizacionProyecto", sm.modificar) == true) {
                        UtilizacionProyectoControlador up = new UtilizacionProyectoControlador();
                        up.modificarUtilizacionProyecto(this.selectedDetaUtilizacionProyecto);
                    }
                } else if (this.selectedDetaDevolucionProyecto != null) {

                    /*DEVOLUCION PROYECTO*/
                    if (sm.validar_rol_usuario("wfrmDevolucionProyecto", sm.modificar) == true) {
                        DevolucionProyectoControlador dp = new DevolucionProyectoControlador();
                        dp.modificarDevolucionProyecto(this.selectedDetaDevolucionProyecto);
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void anularRegistro() {
        try {
            if (this.validar_anular() == true) {

                if (this.selectedDetaSalidaProyecto != null) {

                    /*SALIDA PROYECTO*/
                    if (sm.validar_rol_usuario("wfrmSalidaProyecto", sm.anular) == true) {
                        SalidaProyectoControlador sp = new SalidaProyectoControlador();
                        sp.anularSalidaProyecto(this.detaSalidaProyectos);
                        LimpiarManaged.limpiar();
                    }

                } else if (this.selectedDetaUtilizacionProyecto != null) {

                    /*UTILIZACION PROYECTO*/
                    if (sm.validar_rol_usuario("wfrmUtilizacionProyecto", sm.anular) == true) {
                        UtilizacionProyectoControlador sp = new UtilizacionProyectoControlador();
                        sp.anularUtilizacionProyecto(this.detaUtilizacionProyectos);
                        LimpiarManaged.limpiar();
                    }
                } else if (this.selectedDetaDevolucionProyecto != null) {

                    /*DEVOLUCION PROYECTO*/
                    if (sm.validar_rol_usuario("wfrmDevolucionProyecto", sm.anular) == true) {
                        DevolucionProyectoControlador dp = new DevolucionProyectoControlador();
                        if (dp.validarCantidad_AnularDevolucionProyecto(this.selectedDetaDevolucionProyecto.getId_dp()) == true) {
                            dp.anularDevolucionProyecto(this.detaDevolucionProyectos);
                            LimpiarManaged.limpiar();
                        }
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    private Boolean validar_anular() throws Exception {

        try {
            Boolean var_return = true;

            if (this.selectedDetaSalidaProyecto != null) {
                /*SALIDA PROYECTO*/
                if (this.selectedDetaSalidaProyecto.getEstado_sp().equals("A")) {
                    m.messageError("NO PUEDE ANULAR EL REGISTRO YA ESTA ANULADO!");
                    var_return = false;
                }
                if (this.selectedDetaSalidaProyecto.getId_sp() == null) {
                    m.messageFatal("DEBE ELEGIR UN REGISTRO A ANULAR. NO TIENE CODIGO ASIGNADO. ERROR");
                    var_return = false;
                }
                if (this.detaSalidaProyectos.size() == 0) {
                    m.messageFatal("NO HAY MATERIALES PARA ANULAR EL REGISTRO");
                    var_return = false;
                }

            } else if (this.selectedDetaUtilizacionProyecto != null) {

                /*UTILIZACION PROYECTO*/
                if (this.selectedDetaUtilizacionProyecto.getEstado_up().equals("A")) {
                    m.messageError("NO PUEDE ANULAR REGISTRO. YA ESTA ANULADO!");
                    var_return = false;
                }
                if (this.selectedDetaUtilizacionProyecto.getId_up() == null) {
                    m.messageFatal("DEBE ELEGIR UN REGISTRO A ANULAR. NO TIENE CODIGO ASIGNADO. ERROR");
                    var_return = false;
                }
                if (this.detaUtilizacionProyectos.size() == 0) {
                    m.messageFatal("NO HAY MATERIALES PARA ANULAR EL REGISTRO");
                    var_return = false;
                }
            } else if (this.selectedDetaDevolucionProyecto != null) {

                /*DEVOLUCION PROYECTO*/
                if (this.selectedDetaDevolucionProyecto.getEstado_dp().equals("A")) {
                    m.messageError("NO PUEDE ANULAR EL REGISTRO. EL REGISTRO YA ESTA ANULADO!");
                    var_return = false;
                }
                if (this.selectedDetaDevolucionProyecto.getId_dp() == null) {
                    m.messageFatal("DEBE ELEGIR UN REGISTRO A ANULAR. NO TIENE CODIGO ASIGNADO. ERROR");
                    var_return = false;
                }
                if (this.detaDevolucionProyectos.size() == 0) {
                    m.messageFatal("NO HAY MATERIALES PARA ANULAR EL REGISTRO");
                    var_return = false;
                }
            } else {
                m.messageError("DEBE ELEGIR UN REGISTRO PARA CONTINUAR");
                var_return = false;
            }

            if (var_return == true) {
                if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.anular) == false) {
                    var_return = false;
                }
            }
            return var_return;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    private Boolean validar_mofiicar() throws Exception {

        try {
            Boolean var_return = true;

            if (this.selectedDetaSalidaProyecto != null) {
                /*SALIDA PROYECTO*/
                if (this.selectedDetaSalidaProyecto.getEstado_sp().equals("P")) {
                    m.messageError("PENDIENTE MODFICIAR");
                    var_return = false;
                } else if (this.selectedDetaSalidaProyecto.getEstado_sp().equals("A")) {
                    m.messageError("NO PUEDE MODIFICAR EL REGISTRO YA ESTA ANULADO!");
                    var_return = false;
                }
                if (this.selectedDetaSalidaProyecto.getId_sp() == null) {
                    m.messageFatal("DEBE ELEGIR UN REGISTRO A MODIFICAR. NO TIENE CODIGO ASIGNADO. ERROR");
                    var_return = false;
                }

            } else if (this.selectedDetaUtilizacionProyecto != null) {

                /*UTILIZACION PROYECTO*/
                if (this.selectedDetaUtilizacionProyecto.getEstado_up().equals("P")) {
                    m.messageError("PENDIENTE MODFICIAR");
                    var_return = false;
                } else if (this.selectedDetaUtilizacionProyecto.getEstado_up().equals("A")) {
                    m.messageError("NO PUEDE ANULAR REGISTRO YA ESTA ANULADO!");
                    var_return = false;
                }
                if (this.selectedDetaUtilizacionProyecto.getId_up() == null) {
                    m.messageFatal("DEBE ELEGIR UN REGISTRO A MODIFICAR. NO TIENE CODIGO ASIGNADO. ERROR");
                    var_return = false;
                }
            } else if (this.selectedDetaDevolucionProyecto != null) {

                /*DEVOLUCION PROYECTO*/
                if (this.selectedDetaDevolucionProyecto.getEstado_dp().equals("P")) {
                    m.messageError("PENDIENTE MODFICIAR");
                    var_return = false;
                } else if (this.selectedDetaDevolucionProyecto.getEstado_dp().equals("A")) {
                    m.messageError("NO PUEDE MODFICIAR EL REGISTRO. EL REGISTRO YA ESTA ANULADO!");
                    var_return = false;
                }
                if (this.selectedDetaDevolucionProyecto.getId_dp() == null) {
                    m.messageFatal("DEBE ELEGIR UN REGISTRO A MODIFICAR. NO TIENE CODIGO ASIGNADO. ERROR");
                    var_return = false;
                }
            } else {
                m.messageError("DEBE ELEGIR UN REGISTRO PARA CONTINUAR");
                var_return = false;
            }

            if (var_return == true) {
                if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.modificar) == false) {
                    var_return = false;
                }
            }
            return var_return;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    /*REPORTES*/
    public void generarReporte_Deta() {
        try {
            if (this.selectedDetaSalidaProyecto != null) {
                if (this.detaSalidaProyectos.size() <= 0) {
                    m.messageError("NO HAY MATERIALES PARA GENERAR REPORTE DEL DETALLE");
                } else {
                    if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.reporte) == true) {
                        SalidaProyectoControlador sp = new SalidaProyectoControlador();
                        sp.generarReporte_Detalle(this.selectedDetaSalidaProyecto);
                    }
                }
            } else if (this.selectedDetaUtilizacionProyecto != null) {
                if (this.detaUtilizacionProyectos.size() <= 0) {
                    m.messageError("NO HAY MATERIALES PARA GENERAR REPORTE DEL DETALLE");
                } else {
                    if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.reporte) == true) {
                        UtilizacionProyectoControlador up = new UtilizacionProyectoControlador();
                        up.generarReporte_Detalle(this.selectedDetaUtilizacionProyecto);
                    }
                }
            } else if (this.selectedDetaDevolucionProyecto != null) {
                if (this.detaDevolucionProyectos.size() <= 0) {
                    m.messageError("NO HAY MATERIALES PARA GENERAR REPORTE DEL DETALLE");
                } else {
                    if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.reporte) == true) {
                        DevolucionProyectoControlador dp = new DevolucionProyectoControlador();
                        dp.generarReporte_Detalle(this.selectedDetaDevolucionProyecto);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void generarReporte_Enca_x_Proyecto() {
        try {
            if (this.proyectos == null) {
                m.messageError("NO HAY REGISTROS EN LA BUSQUEDA");
            } else {
                if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.reporte) == true) {
                    this.selectedEncaProyecto.setId_c(this.selectedCliente.getCodigo_c());
                    this.selectedEncaProyecto.setCodigo_cl(this.selectedCliente.getCodigo_c());

                    ProyectoControlador pc = new ProyectoControlador();
                    pc.generarReporte_ConsultaMaestraProyecto(this.selectedDetaProyecto);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }

    public void generarReporte_Enca_x_Cliente() {
        try {
            if (this.proyectos == null) {
                m.messageError("NO HAY REGISTROS EN LA BUSQUEDA");
            } else {
                if (sm.validar_rol_usuario("wfrmcon_MaestraProyecto", sm.reporte) == true) {
                    this.selectedEncaProyecto.setId_c(this.selectedCliente.getCodigo_c());
                    this.selectedEncaProyecto.setCodigo_cl(this.selectedCliente.getCodigo_c());

                    ProyectoControlador pc = new ProyectoControlador();
                    pc.generarReporte_ConsultaMaestraProyecto_x_Cliente(this.selectedEncaProyecto);

                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            m.messageError(m.getIerror());
        }
    }
    /*SETTERS AND GETTERS*/

    public Cliente getSelectedCliente() {
        if (selectedCliente == null) {
            selectedCliente = new Cliente();
        }
        return selectedCliente;
    }

    public void setSelectedCliente(Cliente selectedCliente) {
        this.selectedCliente = selectedCliente;
    }

    public List<Proyecto> getProyectos() {
        return proyectos;
    }

    public void setProyectos(List<Proyecto> proyectos) {
        this.proyectos = proyectos;
    }

    public Proyecto getSelectedDetaProyecto() {
        if (selectedDetaProyecto == null) {
            selectedDetaProyecto = new Proyecto();
        }
        return selectedDetaProyecto;
    }

    public void setSelectedDetaProyecto(Proyecto selectedDetaProyecto) {
        this.selectedDetaProyecto = selectedDetaProyecto;
    }

    public Proyecto getSelectedEncaProyecto() {
        if (selectedEncaProyecto == null) {
            selectedEncaProyecto = new Proyecto();
        }
        return selectedEncaProyecto;
    }

    public void setSelectedEncaProyecto(Proyecto selectedEncaProyecto) {
        this.selectedEncaProyecto = selectedEncaProyecto;
    }

    public Boolean getFlagStep_1() {
        return flagStep_1;
    }

    public void setFlagStep_1(Boolean flagStep_1) {
        this.flagStep_1 = flagStep_1;
    }

    public Boolean getFlagStep_2() {
        return flagStep_2;
    }

    public void setFlagStep_2(Boolean flagStep_2) {
        this.flagStep_2 = flagStep_2;
    }

    public Boolean getFlagStep_3_devolucion() {
        return flagStep_3_devolucion;
    }

    public void setFlagStep_3_devolucion(Boolean flagStep_3_devolucion) {
        this.flagStep_3_devolucion = flagStep_3_devolucion;
    }

    public Boolean getFlagStep_3_salida() {
        return flagStep_3_salida;
    }

    public void setFlagStep_3_salida(Boolean flagStep_3_salida) {
        this.flagStep_3_salida = flagStep_3_salida;
    }

    public Boolean getFlagStep_3_utilizacion() {
        return flagStep_3_utilizacion;
    }

    public void setFlagStep_3_utilizacion(Boolean flagStep_3_utilizacion) {
        this.flagStep_3_utilizacion = flagStep_3_utilizacion;
    }

    public List<DevolucionProyecto> getDetaDevolucionProyectos() {
        return detaDevolucionProyectos;
    }

    public void setDetaDevolucionProyectos(List<DevolucionProyecto> detaDevolucionProyectos) {
        this.detaDevolucionProyectos = detaDevolucionProyectos;
    }

    public List<SalidaProyecto> getDetaSalidaProyectos() {
        return detaSalidaProyectos;
    }

    public void setDetaSalidaProyectos(List<SalidaProyecto> detaSalidaProyectos) {
        this.detaSalidaProyectos = detaSalidaProyectos;
    }

    public List<UtilizacionProyecto> getDetaUtilizacionProyectos() {
        return detaUtilizacionProyectos;
    }

    public void setDetaUtilizacionProyectos(List<UtilizacionProyecto> detaUtilizacionProyectos) {
        this.detaUtilizacionProyectos = detaUtilizacionProyectos;
    }

    public List<DevolucionProyecto> getEncaDevolucionProyectos() {
        return encaDevolucionProyectos;
    }

    public void setEncaDevolucionProyectos(List<DevolucionProyecto> encaDevolucionProyectos) {
        this.encaDevolucionProyectos = encaDevolucionProyectos;
    }

    public List<SalidaProyecto> getEncaSalidaProyectos() {
        return encaSalidaProyectos;
    }

    public void setEncaSalidaProyectos(List<SalidaProyecto> encaSalidaProyectos) {
        this.encaSalidaProyectos = encaSalidaProyectos;
    }

    public List<UtilizacionProyecto> getEncaUtilizacionProyectos() {
        return encaUtilizacionProyectos;
    }

    public void setEncaUtilizacionProyectos(List<UtilizacionProyecto> encaUtilizacionProyectos) {
        this.encaUtilizacionProyectos = encaUtilizacionProyectos;
    }

    public SalidaProyecto getSelectedDetaSalidaProyecto() {
        if (selectedDetaSalidaProyecto == null) {
            selectedDetaSalidaProyecto = new SalidaProyecto();
        }
        return selectedDetaSalidaProyecto;
    }

    public void setSelectedDetaSalidaProyecto(SalidaProyecto selectedDetaSalidaProyecto) {
        this.selectedDetaSalidaProyecto = selectedDetaSalidaProyecto;
    }

    public DevolucionProyecto getSelectedDetaDevolucionProyecto() {
        if (selectedDetaDevolucionProyecto == null) {
            selectedDetaDevolucionProyecto = new DevolucionProyecto();
        }
        return selectedDetaDevolucionProyecto;
    }

    public void setSelectedDetaDevolucionProyecto(DevolucionProyecto selectedDetaDevolucionProyecto) {
        this.selectedDetaDevolucionProyecto = selectedDetaDevolucionProyecto;
    }

    public UtilizacionProyecto getSelectedDetaUtilizacionProyecto() {
        if (selectedDetaUtilizacionProyecto == null) {
            selectedDetaUtilizacionProyecto = new UtilizacionProyecto();
        }
        return selectedDetaUtilizacionProyecto;
    }

    public void setSelectedDetaUtilizacionProyecto(UtilizacionProyecto selectedDetaUtilizacionProyecto) {
        this.selectedDetaUtilizacionProyecto = selectedDetaUtilizacionProyecto;
    }

    public List<ProyectoResumenGeneral> getProyectoResumenGenerales() {
        return proyectoResumenGenerales;
    }

    public void setProyectoResumenGenerales(List<ProyectoResumenGeneral> proyectoResumenGenerales) {
        this.proyectoResumenGenerales = proyectoResumenGenerales;
    }
}
